import request from './request';

/**
 * 获取待审核骑手列表
 * @returns {Promise}
 */
export function getPendingRiders() {
  return request({
    url: '/api/admin/rider/pending',
    method: 'get'
  });
}

/**
 * 获取骑手详情
 * @param {number} riderId 骑手ID
 * @returns {Promise}
 */
export function getRiderDetail(riderId) {
  return request({
    url: '/api/rider/detail',
    method: 'get',
    params: { riderId }
  });
}

/**
 * 审核骑手申请
 * @param {Object} data 包含骑手ID、审核状态和拒绝原因（如有）的对象
 * @returns {Promise}
 */
export function auditRider(data) {
  return request({
    url: '/api/admin/rider/audit',
    method: 'post',
    data
  });
}

/**
 * 获取骑手列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getRiderList(params) {
  return request({
    url: '/api/rider/list',
    method: 'get',
    params
  });
}

/**
 * 禁用/启用骑手账号
 * @param {number} id 骑手ID
 * @param {number} status 状态（0-禁用，1-启用）
 * @returns {Promise}
 */
export function updateRiderStatus(id, status) {
  return request({
    url: '/rider/status',
    method: 'post',
    data: {
      id,
      status
    }
  });
}

/**
 * 获取待接单订单列表
 * @param {Object} params 包含页码和每页数量的对象
 * @returns {Promise}
 */
export function getAvailableOrders(params) {
  return request({
    url: '/api/rider/order/available',
    method: 'get',
    params
  });
}

/**
 * 骑手接单
 * @param {number} orderId 订单ID
 * @param {number} riderId 骑手ID
 * @returns {Promise}
 */
export function takeOrder(orderId, riderId) {
  return request({
    url: '/api/rider/order/take',
    method: 'post',
    params: {
      orderId,
      riderId
    }
  });
}

/**
 * 完成订单配送
 * @param {number} orderId 订单ID
 * @param {number} riderId 骑手ID
 * @returns {Promise}
 */
export function completeOrder(orderId, riderId) {
  return request({
    url: '/api/rider/order/complete',
    method: 'post',
    params: {
      orderId,
      riderId
    }
  });
}

/**
 * 获取骑手配送中的订单
 * @param {number} riderId 骑手ID
 * @param {Object} params 页码和每页数量
 * @returns {Promise}
 */
export function getInProgressOrders(riderId, params) {
  return request({
    url: '/api/rider/order/in-progress',
    method: 'get',
    params: {
      riderId,
      ...params
    }
  });
}

/**
 * 获取骑手已完成的订单
 * @param {number} riderId 骑手ID
 * @param {Object} params 页码和每页数量
 * @returns {Promise}
 */
export function getCompletedOrders(riderId, params) {
  return request({
    url: '/api/rider/order/completed',
    method: 'get',
    params: {
      riderId,
      ...params
    }
  });
}

/**
 * 切换骑手抢单状态
 * @param {number} riderId 骑手ID
 * @param {number} status 状态（0-关闭，1-开启）
 * @returns {Promise}
 */
export function toggleGrabOrderStatus(riderId, status) {
  return request({
    url: '/api/rider/order/toggle-grab',
    method: 'post',
    params: {
      riderId,
      status
    }
  });
}

/**
 * 获取骑手抢单状态
 * @param {number} riderId 骑手ID
 * @returns {Promise}
 */
export function getGrabOrderStatus(riderId) {
  return request({
    url: '/api/rider/order/grab-status',
    method: 'get',
    params: {
      riderId
    }
  });
}

/**
 * 获取订单配送地址的经纬度
 * @param {number} orderId 订单ID
 * @returns {Promise}
 */
export function getOrderLocation(orderId) {
  return request({
    url: '/api/rider/order/location',
    method: 'get',
    params: {
      orderId
    }
  });
}

/**
 * 获取骑手统计数据
 * @param {number} riderId 骑手ID
 * @returns {Promise}
 */
export function getRiderStats(riderId) {
  return request({
    url: '/api/rider/stats/dashboard',
    method: 'get',
    params: {
      riderId
    }
  });
}

/**
 * 获取骑手收到的评价列表
 * @param {number} riderId 骑手ID
 * @param {Object} params 查询参数（页码、每页数量等）
 * @returns {Promise}
 */
export function getRiderRatings(riderId, params) {
  return request({
    url: '/api/rider/ratings',
    method: 'get',
    params: {
      riderId,
      ...params
    }
  });
} 